$(document).ready(function() {
    // 绑定各种点击事件
    bindButtonEvents()

    // 获取表单元素
    let bookForm = $("#bookForm")
    // 表单提交
    bookForm.submit(function (event) {
        // 阻止表单默认提交
        event.preventDefault()
        // 获取要提交的信息
        const bookTitle = $("#book-title").val()
        const bookAuthor = $("#book-author").val()
        const bookPrice = $("#book-price").val()
        const bookQuantity = $("#book-quantity").val()

        if (this.hasAttribute("editBook-type")) {
            // 发送POST请求 修改图书
            $.ajax({
                url: "/modifyBook",
                type: "POST",
                data: {
                    id: this.getAttribute("editBook-type"),
                    title: bookTitle,
                    author: bookAuthor,
                    price: bookPrice,
                    quantity: bookQuantity
                },
                success: function (data) {
                    // 将获取到的HTML代码插入到content中
                    $(".content").html(data)
                    // 重新绑定事件
                    bindButtonEvents()
                }
            })
        } else {
            // 发送POST请求 添加图书
            $.ajax({
                url: "/addBook",
                type: "POST",
                data: {
                    title: bookTitle,
                    author: bookAuthor,
                    price: bookPrice,
                    quantity: bookQuantity
                },
                success: function (data) {
                    // 将获取到的HTML代码插入到content中
                    $(".content").html(data)
                    // 重新绑定事件
                    bindButtonEvents()
                }
            })
        }
    })
    // 获取用户管理链接
    const bookManageLink = $("#getAdminUser")
    // 点击链接跳转用户管理页面
    bookManageLink.click(function (event) {
        event.preventDefault()
        $.ajax({
            url: "/getAdminUser",
            type: "GET",
            success: function (res) {
                // 将获取到的HTML代码插入到content中
                $(".content").html(res)
                // 重新绑定事件
                bindButtonEvents()
            }
        })
    })
})

// 按钮点击事件
function bindButtonEvents() {
    // 获取元素
    const addBookBtn = $("#addBookButton")
    const overlay = $("#overlay")
    const model = $(".model")
    const cancelBtn = $(".model input[type='button']")
    // 获取修改图书按钮
    const editBookBtn = $(".bookModifyBtn")
    // 获取删除图书按钮
    const deleteBookBtn = $(".bookDeleteBtn")
    // 获取筛选图书按钮
    const filterBookBtn = $("#checkBookButton")
    // 获取图书管理链接
    const bookManageLink = $("#getAdminBook")
    // 获取借阅管理链接
    const borrowAllInfo = $("#getAllBorrowInfo")
    // 获取禁用用户按钮
    const disableUserBtn = $("#disableUserBtn")
    // 获取修改用户密码按钮
    const modifyUserPasswordBtn = $("#modify-userBtn")

    // 点击添加图书按钮
    addBookBtn.click(function () {
        overlay.show()
        model.show()
    })

    // 点击修改图书按钮
    editBookBtn.click(function () {
        overlay.show()
        model.show()
        // 获取初始图书信息
        const title = $(this).closest("li").prev().prev().prev().prev().prev().prev().text()
        const author = $(this).closest("li").prev().prev().prev().prev().prev().text()
        const price = $(this).closest("li").prev().prev().prev().prev().text()
        const quantity = $(this).closest("li").prev().prev().prev().text()
        // 修改表单值
        model.find("h2").text("修改图书")
        model.find("input[name='title']").val(title)
        model.find("input[name='author']").val(author)
        model.find("input[name='price']").val(price)
        model.find("input[name='quantity']").val(quantity)
        model.find("form").attr("editBook-type", $(this).attr("id"))
    })

    // 点击删除图书按钮
    deleteBookBtn.click(function () {
        showDeleteConfirm($(this))
    })

    // 点击筛选图书按钮
    bindFilterButtonEvents(filterBookBtn)

    // 给链接添加点击事件
    bookManageLink.click(function (event) {
        event.preventDefault()

        // 发送GET请求 获取图书列表
        $.ajax({
            url: "/getAdminBook",
            type: "GET",
            success: function (res) {
                // 将获取到的HTML代码插入到content中
                $(".content").html(res)
                bindButtonEvents()
            }
        })
    })

    // 点击借阅管理
    borrowAllInfo.click(function (event) {
        event.preventDefault()

        // 发送GET请求
        $.ajax({
            url: "/getAllBorrowInfo",
            type: "GET",
            success: function (res) {
                // 将获取到的HTML代码插入到content中
                $(".content").html(res)
                bindButtonEvents()
            }
        })
    })

    // 点击取消按钮
    cancelBtn.click(function () {
        model.find("input[name='title']").val("")
        model.find("input[name='author']").val("")
        model.find("input[name='price']").val("")
        model.find("input[name='quantity']").val("")
        overlay.hide()
        model.hide()
    })

    // 点击禁用用户按钮
    disableUserBtn.click(function () {
        showDisableConfirm($(this))
    })

}

// 显示提示框确认用户是否删除
function showDeleteConfirm(button) {
    // 根据删除按钮获取图书名称和图书id
    const title = button.closest("li").prev().prev().prev().prev().prev().text()
    const bookID = button.closest("li").next().find("input[type='button']").attr("id")
    let isDelete = window.confirm("确认删除《" + title + "》吗？")
    if (isDelete) {
        // 发送请求删除图书
        $.ajax({
            url: "/deleteBook",
            type: "POST",
            data: {
                id: bookID
            },
            success: function (data) {
                // 将获取到的HTML代码插入到content中
                $(".content").html(data)
                // 重新加载页面
                $("#getAdminBook").click()
            }
        })
    }
}

// 给筛选按钮添加点击事件
function bindFilterButtonEvents(button) {
    // 获取筛选信息
    let title = $("#filter-title")
    let author = $("#filter-author")
    let minPrice = $("#filter-minPrice")
    let maxPrice = $("#filter-maxPrice")
    button.click(function() {
        // 使用ajax发送POST请求
        $.ajax({
            url: "/getBooksByCriteria",
            type: "POST",
            data: {
                "title": title.val(),
                "author": author.val(),
                "minPrice": minPrice.val(),
                "maxPrice": maxPrice.val(),
                "isAdmin": true
            },
            success: function (response) {
                // 请求成功，重新渲染图书借阅表
                $(".content").html(response)
                // 再次绑定各类事件
                bindButtonEvents()
            }
        })
    })
}

// 显示提示框确认禁用用户
function showDisableConfirm(button) {
    // 获取用户id
    const userID = $(".username").attr("id")
    // 用户名
    const username = button.closest("li").prev().prev().prev().prev().prev().text()

    let isDisable = window.confirm("确认禁用用户" + username + "吗？")
    if (isDisable) {
        // 发送POST请求禁用用户
        $.ajax({
            url: "/disableUser",
            type: "POST",
            data: {
                id: userID
            },
            success: function () {
                // 重新加载页面
                $("#getAdminUser").click()
            }
        })
    }
}
